import com.beust.jcommander.Parameter;
import org.junit.Test;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.*;
import org.junit.runners.Parameterized;

import java.util.stream.Stream;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86131
 * Date: 2024-02-04
 * Time: 12:42
 */
public class junitTest {
    public static Stream<Arguments> Generator() {
        return Stream.of(Arguments.arguments(1,"张三"),Arguments.arguments(2,"王五"),Arguments.arguments(3,"李四"));
    }

    @Test
    public void Test1() {
        System.out.println("这是Test1");
    }

    //@Disabled  //忽略  跳过的意思
    @Test
    public void Test02() {
        System.out.println("这是Test02");
    }
    @BeforeAll  //表示所有测试用例运行之前先运行该测试用例
    static void SetUp2() {
        System.out.println("这是BeforeAll里面的语句");
    }  //加static

    @AfterAll  //表示在所有的测试用例运行之"后"跑对应的方法
    public static void TearDown() {
        System.out.println("这是AfterAll的语句");
    }  ////加static

    @BeforeEach  //表示每个测试用例之前先运行该测试用例
    public void SetUp() {
        System.out.println("这是BeforeEach里面的语句");
    }

    @AfterEach  //表示运行每个测试用例之后在运行该测试用例
    void func3() {
        System.out.println("这是AfterEach的例子");
    }

    @ParameterizedTest
    @ValueSource(ints = {1,2,3})
    void Test04(int num) {
        System.out.println(num);
    }

//    @ParameterizedTest
//    @CsvSource("小红,3,4")
//    void Test(String s,String s2,String s3) {
//        System.out.println(s);
//        System.out.println(s2);
//        System.out.println(s3);
//    }

    @ParameterizedTest
    @CsvFileSource(resources = "test01.csv")  //只能传送同种类型
    void test06 (String name,String name1,String name2) {
        System.out.println(name+name1+name2);
    }

    @ParameterizedTest
    @MethodSource("Generator")
    void Test07(int num,String name) {
        System.out.println(num+":"+name);
    }


}
